24 总结

快速回顾

经过了前面 23 节的内容,我们从 K8S 的基础概念入手,通过其基础架构了解到了 K8S 中所涉及到的各类组件。

通过动手实践,使用 minikube 搭建了本地的集群,使用 kubeadm 完成了服务器上的集群搭建,对 K8S 的部署有了更加清晰的认识。

这里再推荐另一种正在快速迭代的方式 Kubernetes In Docker 可以很方便的创建廉价的 K8S 集群,目前至支持单节点集群,多节点支持正在开发中。

后面,我们通过学习 kubectl 的使用,部署了 Redis 服务,了解到了一个服务在 K8S 中部署的操作,以及如何将服务暴露至集群外,以便访问。

当集群真正要被使用之前,权限管控也愈发重要,我们通过学习 RBAC 的相关知识,学习到了如何在 K8S 集群中创建权限可控的用户,而这部分的内容在后续小节中也被频繁用到。

接下来,我们以我们实际的一个项目 SayThx 为例,一步步的完成了项目的部署,在此过程中也学习到了配置文件的编写规范和要求。

当项目变大时,维护项目的更新也变成了一件很麻烦的事情。由此,我们引入了 Helm 作为我们的包管理软件,并使用它进行了项目的部署。

在此过程中也学习到了 Helm 的架构,以及如何编写一个 Chart 等知识。

前面我们主要集中于如何使用 K8S 上,接下了庖丁解牛系列便带我们一同深入至 K8S 内部,了解到了各基础组件的实际工作原理,也深入到了源码内部,了解其实现逻辑。

有这些理论知识作为基础,我们便可以大胆的将应用部署至 K8S 之上了。但实际环境可能多种多样,你可以会遇到各种各样的问题。

这里我们介绍了一些常见的 Troubleshoot 的方法,以便你在后续使用 K8S 的过程中遇到问题也可以快速的定位并解决问题。

此外,我们学习了 K8S 的一些扩展,比如 Dashboard 和 CoreDNS , Dashboard 是一个比较直观的管理资源的方式,它也还在快速的发展和迭代中。

CoreDNS 在 K8S 1.13 中已经成为默认的 DNS 服务器,相信在不久之后, CoreDNS 也将会从 CNCF 毕业。

我们介绍了 Ingress 和在 K8S 中使用 Promethes 进行监控,不过监控涉及的方面很多,除了集群自身的监控外,应用层的监控也同样很重要。另外,监控和告警也是相辅相成的,在已有监控数据的前提下,如何更智能更优雅的告警也是我们需要考虑的点。否则,很容易造成告警风暴,有用的告警被忽略之类的。

扩展阅读

基于 K8S 的生态已经在逐步形成,只靠一本小册还远远不够,我们需要更多的对操作系统的了解,对 K8S 及其生态的了解。

以下推荐一些扩展阅读:

推荐一下自己的公众号: MoeLove

img

不定期更新云原生生态中的相关技术。

总结

围绕 K8S 的云原生生态已经逐步形成,希望本小册能在你未来发展道路上起到一定的帮助。

K8S 涉及的知识面很广,小册中篇幅有限未能一一详解,欢迎大家共同讨探。